package com.dxf.chepter03

import util.control.Breaks._

/**
 * scala中break 和continue被删除了
 * break 实现方式:
 * 1 使用 util.control.Breaks._ 包下的 break() 函数   抛出一个异常来退出循环
 * 2 可以处理异常的breakAble(),高阶函数,来捕获异常
 *
 *
 * continue实现方式:
 * 可以使用if -else 或者 循环守卫实现continue效果
 *
 *
 *
 *
 *
 *
 */
object T31_Break和Continue实现 {
  def main(args: Array[String]): Unit = {
    var n = 1
    breakable {
      //1: breakable(op: => Unit) 高阶函数  ==> 可以接受函数的函数就是高阶函数(后面详讲)
      //2: breakable(op: => Unit)     op 函数,无输入那种 , Unit没有返回值,表示这个breakable()函数接受一个无输入函数,这个函数没有返回值
      //3: 可以简单理解可以接受一个代码块
      //4: 当op是代码块,会把小括号改成大括号
      while (n <= 20) {
        n += 1
        if (n == 18) {
          break() //import util.control.Breaks._ 包下的break()函数
        }
      }
    }
    println("ok~~")
    println("======================================")

    for (i <- 1 to 10 if (i != 2 && i != 3)) {
      println("i=" + i)
    }
    println("===================等价于===================")
    for (i <- 1 to 10) {
      if (i != 2 && i != 3) println("i=" + i)

    }
  }


}
